package act.droidcar;

import java.text.NumberFormat;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.droidcar.ListaVeiculosBD;
import com.droidcar.VeiculosBD;

/**
 * Activity para comparacao de veiculos.
 */	
public class TelaComparar extends Activity {

	
	Button btnCarregarVeiculo1;
	Button btnCarregarVeiculo2;
	Button btnVoltar;	
	
	ImageView img_veiculo_1;
	ImageView img_veiculo_2;
	
	
	private VeiculosBD veiculo_1 = null;
	private VeiculosBD veiculo_2 = null;	
	
	private NumberFormat frmVal  = NumberFormat.getCurrencyInstance();
	private NumberFormat frmNum  = NumberFormat.getNumberInstance();	
	
	TextView vwMarca_1;
	TextView vwModelo_1;
	TextView vwAno_1;
	TextView vwCor_1;
	TextView vwCombustivel_1;
	TextView vwKM_1;
	TextView vwValor_1;
	TextView vwOutros_1;
	
	TextView vwMarca_2;
	TextView vwModelo_2;
	TextView vwAno_2;
	TextView vwCor_2;
	TextView vwCombustivel_2;
	TextView vwKM_2;
	TextView vwValor_2;
	TextView vwOutros_2;

	private Intent veiculos;
	private ListaVeiculosBD oLista;
	private int Envio = 0;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.comparaveiculos);

		oLista = (ListaVeiculosBD) getIntent().getSerializableExtra("ListaVeiculos");
		int Tipo = getIntent().getIntExtra("Tipo",1);		
	
		inicializarComponentes();
		
		if(Tipo == 2 ){
			veiculo_1 = (VeiculosBD) getIntent().getSerializableExtra("Veiculo");
			Envio     = 1;
			CarregarVeiculo(veiculo_1);			
		}
		
	}
	
	/**
	 * Inicilizacao de componentes e eventos.
	 */	
	public void inicializarComponentes(){

		
		btnCarregarVeiculo1 = (Button) findViewById(R.botao.SelVeic1);
		btnCarregarVeiculo2 = (Button) findViewById(R.botao.SelVeic2);
		btnVoltar			= (Button) findViewById(R.botao.btnVoltar);
		
		vwMarca_1		 = (TextView) findViewById(R.linha.marca_1);
		vwModelo_1		 = (TextView) findViewById(R.linha.modelo_1);
		vwAno_1			 = (TextView) findViewById(R.linha.ano_1);
		vwCor_1			 = (TextView) findViewById(R.linha.cor_1);
		vwCombustivel_1	 = (TextView) findViewById(R.linha.combustivel_1);
		vwKM_1			 = (TextView) findViewById(R.linha.km_1);
		vwValor_1		 = (TextView) findViewById(R.linha.valor_1);
		vwOutros_1		 = (TextView) findViewById(R.linha.outros_1);
			
		vwMarca_2		 = (TextView) findViewById(R.linha.marca_2);
		vwModelo_2		 = (TextView) findViewById(R.linha.modelo_2);
		vwAno_2			 = (TextView) findViewById(R.linha.ano_2);
		vwCor_2			 = (TextView) findViewById(R.linha.cor_2);
		vwCombustivel_2	 = (TextView) findViewById(R.linha.combustivel_2);
		vwKM_2			 = (TextView) findViewById(R.linha.km_2);
		vwValor_2		 = (TextView) findViewById(R.linha.valor_2);
		vwOutros_2		 = (TextView) findViewById(R.linha.outros_2);
		
		img_veiculo_1	= (ImageView) findViewById(R.imagem.veiculo_1);
		img_veiculo_2	= (ImageView) findViewById(R.imagem.veiculo_2);	
		

		btnCarregarVeiculo1.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   	
    			
    			Envio = 1;
  				veiculos = new Intent(TelaComparar.this,ListarVeiculos.class);   			
    			veiculos.putExtra("ListaVeiculos", oLista); 
    			veiculos.putExtra("Tipo", 1);
    			veiculos.putExtra("Retorna", 1);
    			TelaComparar.this.startActivityForResult(veiculos, 1);
    			//TelaComparar.this.startActivity(veiculos);
    			
    			
    		
    		}   		
    		
    		
    	});
		
		btnCarregarVeiculo2.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   			

    			Envio = 2;
  				veiculos = new Intent(TelaComparar.this,ListarVeiculos.class);   			
    			veiculos.putExtra("ListaVeiculos", oLista); 
    			veiculos.putExtra("Tipo", 1);
    			veiculos.putExtra("Retorna", 1);
    			//TelaComparar.this.startActivity(veiculos);
    			TelaComparar.this.startActivityForResult(veiculos, 2);
    			
    		
    		}   		
    		
    		
    	});
		
		
		btnVoltar.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   			
    	        
    			finish();
    		
    		}   		
    		
    		
    	});
		
		img_veiculo_1.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   			
    	        if(veiculo_1 != null){    	        
    	        
    	        	Intent Veiculo = new Intent(TelaComparar.this,TelaVeiculo.class);
    	        	Veiculo.putExtra("VeiculosBD", veiculo_1);
    	        	Veiculo.putExtra("Tipo",1);
    	        	TelaComparar.this.startActivity(Veiculo);
    	        }
        		
    		
    		}   
    		
    	});
		
		img_veiculo_2.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   			
    	        if(veiculo_2 != null){    	        
    	        
    	        	Intent Veiculo = new Intent(TelaComparar.this,TelaVeiculo.class);
    	        	Veiculo.putExtra("VeiculosBD", veiculo_2);
    	        	Veiculo.putExtra("Tipo",1);
    	        	TelaComparar.this.startActivity(Veiculo);
    	        }
        		
    		
    		}   
    		
    	});		
	
	}
	
	
	/**
	 * Metodo para carregamento das informações do objeto de veiculo selecionado.
	 * Quando dois veiculos estão carregados e feito a comparacao entre estes.
	 */	
	public void CarregarVeiculo(VeiculosBD obj){

		
		if(Envio == 1){
		
			vwMarca_1.setText(obj.getMCA_DESCRICAO());
			vwModelo_1.setText(obj.getMDO_DESCRICAO());
			vwAno_1.setText( String.valueOf(obj.getVCL_ANO() ));
			vwCor_1.setText(obj.getCOR_DESCRICAO());
			vwCombustivel_1.setText(obj.getCMB_DESCRICAO());
			vwKM_1.setText( frmNum.format(obj.getVCL_KM() ) + "km");
			vwValor_1.setText(frmVal.format(obj.getVCL_VALOR()));
			vwOutros_1.setText(obj.getVCL_OBSERVACAO());
			
			img_veiculo_1.setImageDrawable(obj.LoadImageFromWebOperations(obj.getVCL_IMG_NORMAL()));			
			
			veiculo_1 = obj;
						
		}else{
			
			vwMarca_2.setText(obj.getMCA_DESCRICAO());
			vwModelo_2.setText(obj.getMDO_DESCRICAO());
			vwAno_2.setText( String.valueOf(obj.getVCL_ANO() ));
			vwCor_2.setText(obj.getCOR_DESCRICAO());
			vwCombustivel_2.setText(obj.getCMB_DESCRICAO());
			vwKM_2.setText( frmNum.format(obj.getVCL_KM() ) + "km");
			vwValor_2.setText(frmVal.format(obj.getVCL_VALOR()));
			vwOutros_2.setText(obj.getVCL_OBSERVACAO());
			
			img_veiculo_2.setImageDrawable(obj.LoadImageFromWebOperations(obj.getVCL_IMG_NORMAL()));
			
			veiculo_2 = obj;
			
		}
		
		if( (veiculo_1 != null) && (veiculo_2 != null)){
		
			vwAno_1.setTextColor(Color.WHITE);
			vwAno_2.setTextColor(Color.WHITE);
			vwAno_1.setBackgroundColor(Color.BLACK);
			vwAno_2.setBackgroundColor(Color.BLACK);
			
			vwKM_1.setTextColor(Color.WHITE);
			vwKM_2.setTextColor(Color.WHITE);
			vwKM_1.setBackgroundColor(Color.BLACK);
			vwKM_2.setBackgroundColor(Color.BLACK);
			
			vwValor_1.setTextColor(Color.WHITE);
			vwValor_2.setTextColor(Color.WHITE);
			vwValor_1.setBackgroundColor(Color.BLACK);
			vwValor_2.setBackgroundColor(Color.BLACK);
			
			
			if(veiculo_1.getVCL_ANO() > veiculo_2.getVCL_ANO()){
				vwAno_1.setTextColor(Color.BLACK);
				vwAno_2.setTextColor(Color.BLACK);
				vwAno_1.setBackgroundColor(Color.GREEN);
				vwAno_2.setBackgroundColor(Color.RED);				
			}else
				if(veiculo_1.getVCL_ANO() < veiculo_2.getVCL_ANO()){
					vwAno_1.setTextColor(Color.BLACK);
					vwAno_2.setTextColor(Color.BLACK);
					vwAno_1.setBackgroundColor(Color.RED);
					vwAno_2.setBackgroundColor(Color.GREEN);					
				}
			
			if(veiculo_1.getVCL_KM() > veiculo_2.getVCL_KM()){
				vwKM_1.setTextColor(Color.BLACK);
				vwKM_2.setTextColor(Color.BLACK);
				vwKM_1.setBackgroundColor(Color.RED);
				vwKM_2.setBackgroundColor(Color.GREEN);				
			}else
				if(veiculo_1.getVCL_KM() < veiculo_2.getVCL_KM()){
					vwKM_1.setTextColor(Color.BLACK);
					vwKM_2.setTextColor(Color.BLACK);
					vwKM_1.setBackgroundColor(Color.GREEN);
					vwKM_2.setBackgroundColor(Color.RED);					
				}
			
			if(veiculo_1.getVCL_VALOR() > veiculo_2.getVCL_VALOR()){
				vwValor_1.setTextColor(Color.BLACK);
				vwValor_2.setTextColor(Color.BLACK);
				vwValor_1.setBackgroundColor(Color.RED);
				vwValor_2.setBackgroundColor(Color.GREEN);					
			}else
				if(veiculo_1.getVCL_VALOR() < veiculo_2.getVCL_VALOR()){
					vwValor_1.setTextColor(Color.BLACK);
					vwValor_2.setTextColor(Color.BLACK);
					vwValor_1.setBackgroundColor(Color.GREEN);
					vwValor_2.setBackgroundColor(Color.RED);						
				}
			
		}
		
	}
	
	/**
	 * Quando a Activity e retornada apos o evento de seleção de veiculo e verificado o retorno para entao fazer a chamada do metodo carregar veiculo.
	 */	
	protected void onActivityResult(int codigo, int resultado, Intent i) {

		 
			Bundle params = i != null ? i.getExtras() : null;
			if (params != null) {
				
				VeiculosBD obj = (VeiculosBD) i.getSerializableExtra("VeiculosBD");
				
				CarregarVeiculo(obj);
				
			}			
		
	}	

}
